package com.hdj.suanfa;

/**
 * @Author: HeDongJia
 * @Description: Bogo_Sort排序
 * @Date: Create in 22:14 2021/7/12
 * @Modified By:
 */
public class BogoSort {
    public static void main(String[] args) {
        int[] arr = { 10,9,8, 7, 6, 5, 4, 3, 2, 1};
        System.out.println("排序次数"+bogo(arr));
        for(int i:arr){
            System.out.println(i+" ");
        }
    }

    public  static int bogo(int[] arr){
        long a= System.currentTimeMillis();//获取当前系统时间(毫秒)
        int count=0;
        // 判断是否有序
        while(!isOrdered(arr)){
            // 随机排序方法
            shuffle(arr);
            count++;
        }
        System.out.println(System.currentTimeMillis()-a+"毫秒");
        return count;
    }

    private static void shuffle(int[] arr) {
        int  temp;
        for(int i=0;i< arr.length;i++){
            int j= (int)(Math.random() * arr.length);
            temp = arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
        }

    }

    // 判断是否有序方法
    public static boolean isOrdered(int[] arr){
        for(int i=1;i<arr.length;i++){
            if(arr[i-1]>arr[i]){
                return false;
            }
        }
        return true;
    }
}
